﻿using System;
using System.Data.OleDb;
using System.Collections.Generic;

namespace Gestión_UTN.util
{
    public class Correlatividades
    {
        public static CorrelatividadTSP GetCorrelatividadesTSPByMateria(string materia)
        {
            CorrelatividadTSP correlatividades = null;
            OleDbConnection con = null;

            try
            {
                con = Conexion.conectarExcel("CorrelatividadesTSP.xlsx");

                if (null != con)
                {
                    correlatividades = new CorrelatividadTSP();

                    con.Open();

                    string consulta = "SELECT Materia, Para_Cursar_Cursada, " +
                                        " Para_Cursar_Aprobada, Para_Rendir FROM [Correlatividades$]" +
                                        " WHERE Materia = @materia";

                    OleDbCommand cmd = new OleDbCommand(consulta, con);

                    cmd.Parameters.AddWithValue("@materia", materia);

                    OleDbDataReader lector = cmd.ExecuteReader();

                    while (lector.Read())
                    {
                        correlatividades.Materia = materia;
                        correlatividades.Para_cursar_aprobada = lector[2].ToString();
                        correlatividades.Para_cursar_cursada = lector[1].ToString();
                        correlatividades.Para_rendir = lector[3].ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                correlatividades = null;
                throw new exceptions.daexception(ex.Message);
            }

            return correlatividades;

        }

        public static List<CorrelatividadTSP> GetCorrelatividadesTSP()
        {
            List<CorrelatividadTSP> correlatividades = null;
            OleDbConnection con = null;

            try
            {
                con = Conexion.conectarExcel("CorrelatividadesTSP.xlsx");

                if (null != con)
                {
                    correlatividades = new List<CorrelatividadTSP>();

                    con.Open();

                    string consulta = "SELECT Materia, Para_Cursar_Cursada, " +
                                        " Para_Cursar_Aprobada, Para_Rendir FROM [Correlatividades$]";

                    OleDbCommand cmd = new OleDbCommand(consulta, con);

                    OleDbDataReader lector = cmd.ExecuteReader();

                    while (lector.Read())
                    {
                        CorrelatividadTSP corr = new CorrelatividadTSP();

                        corr.Materia = lector[1].ToString();
                        corr.Para_cursar_aprobada = lector[3].ToString();
                        corr.Para_cursar_cursada = lector[2].ToString();
                        corr.Para_rendir = lector[4].ToString();

                        correlatividades.Add(corr);

                        corr = null;
                    }
                }
            }
            catch (Exception ex)
            {
                correlatividades = null;
                throw new exceptions.daexception(ex.Message);
            }

            return correlatividades;

        }

        public static CorrelatividadTSMI GetCorrelatividadesTSMIByMateria(string materia)
        {
            CorrelatividadTSMI correlatividades = null;
            OleDbConnection con = null;

            try
            {
                con = Conexion.conectarExcel("CorrelatividadesTSMI.xlsx");

                if (null != con)
                {
                    correlatividades = new CorrelatividadTSMI();

                    con.Open();

                    string consulta = "SELECT Materia, Correlatividad " +
                                        " FROM [Correlatividades$]" +
                                        " WHERE Materia = @materia";

                    OleDbCommand cmd = new OleDbCommand(consulta, con);

                    cmd.Parameters.AddWithValue("@materia", materia);

                    OleDbDataReader lector = cmd.ExecuteReader();

                    while (lector.Read())
                    {
                        correlatividades.Materia = materia;
                        correlatividades.Correlatividad = lector[1].ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                correlatividades = null;
                throw new exceptions.daexception(ex.Message);
            }

            return correlatividades;
        }

        public static List<CorrelatividadTSMI> GetCorrelatividadesTSMI()
        {
            List<CorrelatividadTSMI> correlatividades = null;
            OleDbConnection con = null;

            try
            {
                con = Conexion.conectarExcel("CorrelatividadesTSMI.xlsx");

                if (null != con)
                {
                    correlatividades = new List<CorrelatividadTSMI>();

                    con.Open();

                    string consulta = "SELECT Materia, Correlatividad " +
                                        " FROM [Correlatividades$]";

                    OleDbCommand cmd = new OleDbCommand(consulta, con);

                    OleDbDataReader lector = cmd.ExecuteReader();

                    while (lector.Read())
                    {
                        CorrelatividadTSMI corr = new CorrelatividadTSMI();

                        corr.Materia = lector[0].ToString();
                        corr.Correlatividad = lector[1].ToString();

                        correlatividades.Add(corr);

                        corr = null;
                    }
                }
            }
            catch (Exception ex)
            {
                correlatividades = null;
                throw new exceptions.daexception(ex.Message);
            }

            return correlatividades;
        }
    }
}
